package com.epalmpay.controller.channel.bonus;

import com.epalmpay.commom.BaseController;
import com.epalmpay.exception.ApplicationException;
import com.epalmpay.status.Rescode;
import com.epalmpay.dto.bonus.*;
import com.epalmpay.dto.system.PageDTO;
import com.epalmpay.entity.*;
import com.epalmpay.service.bonus.IBonusSendShopService;
import com.epalmpay.util.Tools;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

/**
 * Created by gwn on 2017/9/15.
 */
@Controller
@RequestMapping(value="/merchant/bonusSendShop")
public class BonusSendShopController extends BaseController{

    @Resource
    private IBonusSendShopService bonusSendShopService;


    @ResponseBody
    @RequestMapping(value = "/index")
    public BonusSendShopListOutDTO index(BonusSendShopInDTO bonusSendShopInDTO)throws Exception{
        BonusSendShopListOutDTO bonusSendShopListOutDTO = new BonusSendShopListOutDTO();
        try {

//            StatisGroup statisGroup = bonusSendShopService.queryBonusCount(bonusSendShopInDTO);
//            bonusSendShopListOutDTO.setStatisGroup(statisGroup);
            BonusSendLog bonusSendLog = bonusSendShopService.bonusSendBonusAmount(bonusSendShopInDTO.getGroupId());
            bonusSendShopListOutDTO.setBonusSendLog(bonusSendLog);

            BonusVerifyLog bonusVerifyLog =bonusSendShopService.bonusVerifyAmount(bonusSendShopInDTO.getGroupId());
            bonusSendShopListOutDTO.setBonusVerifyLog(bonusVerifyLog);

            BonusSendShop bonusSendShop = new BonusSendShop();
            int count = bonusSendShopService.queryBonusSendShopCount(bonusSendShopInDTO);
            bonusSendShop.setTotalCount(count);
            bonusSendShopListOutDTO.setBonusSendShop(bonusSendShop);

            BonusVerifyShop bonusVerifyShop = new  BonusVerifyShop();
            int count2= bonusSendShopService.queryBonusVerifyShopCount(bonusSendShopInDTO);
            bonusVerifyShop.setTotalCount(count2);
            bonusSendShopListOutDTO.setBonusVerifyShop(bonusVerifyShop);

            bonusSendShopListOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");

            return bonusSendShopListOutDTO;
        } catch (ApplicationException ae) {
            bonusSendShopListOutDTO.setErrorCode(ae.errCode, ae.errMsg);
            ae.printStackTrace();
        }
        catch (Exception e) {
            bonusSendShopListOutDTO.setErrorCode(Rescode.DEFAULT_PREFIX, "处理出现异常");
            e.printStackTrace();
        }
        return bonusSendShopListOutDTO;

    }


    @ResponseBody
    @RequestMapping(value = "/bonusSendShopDetail")
    public BonusSendShopListOutDTO bonusSendShopDetail(BonusSendShopInDTO bonusSendShopInDTO,PageDTO pageDTO)throws Exception{
        BonusSendShopListOutDTO bonusSendShopListOutDTO = new BonusSendShopListOutDTO();
        try {
            Page page= Tools.pageEmtity(pageDTO);
            bonusSendShopListOutDTO= bonusSendShopService.queryBonusSendShopList(bonusSendShopInDTO,page);

            bonusSendShopListOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");

            bonusSendShopListOutDTO.setPage(page);
            return bonusSendShopListOutDTO;
        } catch (ApplicationException ae) {
            bonusSendShopListOutDTO.setErrorCode(ae.errCode, ae.errMsg);
            ae.printStackTrace();
        }
        catch (Exception e) {
            bonusSendShopListOutDTO.setErrorCode(Rescode.DEFAULT_PREFIX, "处理出现异常");
            e.printStackTrace();
        }
        return bonusSendShopListOutDTO;

    }



/*   @ResponseBody
    @RequestMapping(value = "/bonusSendMonthList")
    public BonusSendShopListOutDTO bonusSendMonthList(BonusSendShopInDTO bonusSendShopInDTO,PageDTO pageDTO)throws Exception{
        BonusSendShopListOutDTO bonusSendShopListOutDTO = new BonusSendShopListOutDTO();
        try {
            Page page= Tools.pageEmtity(pageDTO);
            //门店信息
            BonusSendShopOutDTO bonusSendShopOutDTO = bonusSendShopService.queryBonusSendShopDetail(bonusSendShopInDTO);

            bonusSendShopInDTO.setShopId(bonusSendShopOutDTO.getShopId());
            bonusSendShopListOutDTO= bonusSendShopService.queryBonusSendMonthList(bonusSendShopInDTO,page);

            bonusSendShopListOutDTO.setBonusSendShopOutDTO(bonusSendShopOutDTO);
            bonusSendShopListOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");

            bonusSendShopListOutDTO.setPage(page);
            return bonusSendShopListOutDTO;
        } catch (ApplicationException ae) {
            bonusSendShopListOutDTO.setErrorCode(ae.errCode, ae.errMsg);
            ae.printStackTrace();
        }
        catch (Exception e) {
            bonusSendShopListOutDTO.setErrorCode(Rescode.DEFAULT_PREFIX, "处理出现异常");
            e.printStackTrace();
        }
        return bonusSendShopListOutDTO;

    }*/

   @ResponseBody
    @RequestMapping(value = "/bonusSendShopLogList")
    public BonusSendShopListOutDTO bonusSendShopLogList(BonusSendShopInDTO bonusSendShopInDTO,PageDTO pageDTO)throws Exception{
        BonusSendShopListOutDTO bonusSendShopListOutDTO = new BonusSendShopListOutDTO();
        try {
            Page page= Tools.pageEmtity(pageDTO);
            //门店信息

//            bonusSendShopInDTO.setShopId(bonusSendShopInDTO.getShopId());
            bonusSendShopListOutDTO= bonusSendShopService.bonusSendShopLogList(bonusSendShopInDTO,page);

            bonusSendShopListOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");

            bonusSendShopListOutDTO.setPage(page);
            return bonusSendShopListOutDTO;
        } catch (ApplicationException ae) {
            bonusSendShopListOutDTO.setErrorCode(ae.errCode, ae.errMsg);
            ae.printStackTrace();
        }
        catch (Exception e) {
            bonusSendShopListOutDTO.setErrorCode(Rescode.DEFAULT_PREFIX, "处理出现异常");
            e.printStackTrace();
        }
        return bonusSendShopListOutDTO;

    }





    @ResponseBody
    @RequestMapping(value = "/bonusSendLogList")
    public BonusSendShopListOutDTO bonusSendShopMonthList(BonusSendShopInDTO bonusSendShopInDTO,PageDTO pageDTO)throws Exception{
        BonusSendShopListOutDTO bonusSendShopListOutDTO = new BonusSendShopListOutDTO();
        try {
            Page page= Tools.pageEmtity(pageDTO);
            //门店月信息
            BonusSendShopMonth bonusSendShopMonth = bonusSendShopService.queryBonusSendShopMonthDetail(bonusSendShopInDTO);
            bonusSendShopMonth.setStatisDate(bonusSendShopMonth.getStatisDate().substring(0,4)+'-'+bonusSendShopMonth.getStatisDate().substring(4,6));

            bonusSendShopInDTO.setShopId(bonusSendShopMonth.getShopId());
            bonusSendShopInDTO.setStatisDate(bonusSendShopMonth.getStatisDate());
            bonusSendShopListOutDTO= bonusSendShopService.bonusSendLogList(bonusSendShopInDTO,page);

            bonusSendShopListOutDTO.setBonusSendShopMonth(bonusSendShopMonth);

            bonusSendShopListOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");

            bonusSendShopListOutDTO.setPage(page);
            return bonusSendShopListOutDTO;
        } catch (ApplicationException ae) {
            bonusSendShopListOutDTO.setErrorCode(ae.errCode, ae.errMsg);
            ae.printStackTrace();
        }
        catch (Exception e) {
            bonusSendShopListOutDTO.setErrorCode(Rescode.DEFAULT_PREFIX, "处理出现异常");
            e.printStackTrace();
        }
        return bonusSendShopListOutDTO;

    }




//    @ResponseBody
//    @RequestMapping(value = "/bonusSendLogList")
//    public BonusSendShopListOutDTO bonusSendLogList(BonusSendShopInDTO bonusSendShopInDTO,PageDTO pageDTO)throws Exception{
//        BonusSendShopListOutDTO bonusSendShopListOutDTO = new BonusSendShopListOutDTO();
//        try {
//            Page page= Tools.pageEmtity(pageDTO);
//
//            BonusSendShopMonth bonusSendShopMonth = bonusSendShopService.queryBonusSendShopMonthDetail(bonusSendShopInDTO);
//
//            bonusSendShopInDTO.setStatisDate(bonusSendShopMonth.getStatisDate());
//            bonusSendShopListOutDTO= bonusSendShopService.bonusSendLogList(bonusSendShopInDTO,page);
//
//            bonusSendShopListOutDTO.setBonusSendShopMonth(bonusSendShopMonth);
//            bonusSendShopListOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");
//
//            bonusSendShopListOutDTO.setPage(page);
//            return bonusSendShopListOutDTO;
//        } catch (ApplicationException ae) {
//            bonusSendShopListOutDTO.setErrorCode(ae.errCode, ae.errMsg);
//            ae.printStackTrace();
//        }
//        catch (Exception e) {
//            bonusSendShopListOutDTO.setErrorCode(Rescode.DEFAULT_PREFIX, "处理出现异常");
//            e.printStackTrace();
//        }
//        return bonusSendShopListOutDTO;
//
//    }
}
